package com.hoshiicloud.user.param.organization;

import com.hoshiicloud.common.validate.annotations.Fax;
import com.hoshiicloud.common.validate.annotations.Mobile;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * <p>
 * 新增租户机构表参数
 * </p>
 *
 * @author campchen
 * @since 2019-04-28
 */

@Data
@ApiModel(value = "新增租户机构表", description = "新增租户机构表")
public class ComOrganizationAddParam implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "公司ID 由系统自动传递", required = true, example = "3171776001692663893")
    @NotNull(message = "公司ID不能为空")
    private Long companyId;

    @ApiModelProperty(value = "负责部门ID", example = "3171776001692663855")
    private Long departmentId;

    @ApiModelProperty(name = "organizationTypeId", value = "采购商类型（来源于采购商类型）来源 organization_type", required = true, dataType = "java.lang.Long", example = "3171776001692662345")
    @NotNull(message = "供应商类型不能为空")
    private Long organizationTypeId;

    @ApiModelProperty(value = "采购商类型（来源于采购商类型）1-国内供应商 2-国外供应商 3-合作伙伴 4-其他机构 来源 organization_type  ", required = true, example = "1")
    @NotNull(message = "采购商类型不能为空")
    private Integer type;

    @ApiModelProperty(value = "上级机构")
    private Long parentId;

    @ApiModelProperty(value = "采购商名称", required = true, example = "好货严选供应商")
    @NotNull(message = "采购商名称不能为空")
    private String name;

    @ApiModelProperty(value = "负责人", required = true, example = "campchen")
    @NotNull(message = "负责人不能为空")
    private String charge;

    @ApiModelProperty(value = "身份证号码", required = true, example = "111111201905221111")
    @NotNull(message = "身份证号码不能为空")
    private String idCard;

    @ApiModelProperty(name = "accountType", value = "账户类型 1-企业账户 2-个人账户")
    private Integer accountType;

    @ApiModelProperty(name = "accountName", value = "户名(开户名称)")
    private String accountName;

    @ApiModelProperty(value = "对公帐号", required = true, example = "好货严选对公账号")
    @NotNull(message = "对公帐号不能为空")
    private String bankNumber;

    @ApiModelProperty(value = "银行名称", required = true, example = "福建人民银行")
    @NotNull(message = "银行名称不能为空")
    private String bankName;

    @ApiModelProperty(value = "所在支行", required = true, example = "福建支行")
    @NotNull(message = "所在支行不能为空")
    private String bankAddress;

    @ApiModelProperty(value = "税务登记号", example = "不知道")
    private String taxation;

    @ApiModelProperty(value = "开票号", example = "不知道")
    private String piaohao;

    @ApiModelProperty(value = "发货地址", example = "福建马尾区广场舞广场")
    private String goodsAddress;

    @ApiModelProperty(value = "仓库地址", example = "福建马尾区广场舞广场")
    private String whouseAddress;

    @ApiModelProperty(value = "结算方式-settlement", example = "1")
    private Long paymentId;

    @ApiModelProperty(value = "电话号码", example = "13501244567")
    private String telphone;

    @ApiModelProperty(value = "手机号码")
    @Mobile
    private String mobile;

    @ApiModelProperty(value = "传真")
    @Fax
    private String fax;

    @ApiModelProperty(value = "主页")
    private String home;

    @ApiModelProperty(value = "邮件")
    private String email;

    @ApiModelProperty(value = "公司地址")
    private String address;

    @ApiModelProperty(name = "applyType", value = "1-法定代表人 2-经营负责人")
    private Integer applyType;

    @ApiModelProperty(name = "applyIdNumber", value = "申请人身份证号码")
    private String applyIdNumber;

    @ApiModelProperty(name = "applyName", value = "申请人姓名")
    private String applyName;

    @ApiModelProperty(name = "applyAddress", value = "申请人地址")
    private String applyAddress;

    @ApiModelProperty(name = "applyIssuedby", value = "申请人签发机关")
    private String applyIssuedby;

    @ApiModelProperty(name = "applySex", value = "申请人性别")
    private String applySex;

    @ApiModelProperty(name = "applyBirthplace", value = "申请人籍贯")
    private String applyBirthplace;

    @ApiModelProperty(name = "applyBirth", value = "申请人出生日期")
    private String applyBirthday;

    @ApiModelProperty(name = "applyIdFront", value = "申请人身份证正面")
    private String applyIdFront;

    @ApiModelProperty(name = "applyIdBack", value = "申请人身份证反面")
    private String applyIdBack;

    @ApiModelProperty(name = "chargeTelphone", value = "负责人电话")
    private String chargeTelphone;

    @ApiModelProperty(name = "chargeWeixin", value = "负责人微信")
    private String chargeWeixin;

    @ApiModelProperty(name = "chargeEmail", value = "负责人邮箱")
    private String chargeEmail;

    @ApiModelProperty(name = "province", value = "省份")
    private Integer province;

    @ApiModelProperty(name = "provinceName", value = "省份名")
    private String provinceName;

    @ApiModelProperty(name = "city", value = "城市")
    private Integer city;

    @ApiModelProperty(name = "cityName", value = "城市名称")
    private String cityName;

    @ApiModelProperty(name = "district", value = "地区")
    private Integer district;

    @ApiModelProperty(name = "districtName", value = "地区名")
    private String districtName;

    @ApiModelProperty(name = "street", value = "街道")
    private Integer street;

    @ApiModelProperty(name = "streetName", value = "街道名")
    private String streetName;

    @ApiModelProperty(value = "推荐人id")
    private Long referrerId;

    @ApiModelProperty(value = "创建人")
    private String createdBy;

    @ApiModelProperty(value = "联系人")
    private String contacts;

    @ApiModelProperty(value = "邀请码")
    private String invitedCode;

    @ApiModelProperty(value = "微信号")
    private String weixin;

    @ApiModelProperty(value = "公司简介")
    private String profile;


    @ApiModelProperty(value = "身份证有效期",name = "idCardExpirationDate",required = true,example = "永久有效")
    private String idCardExpirationDate;
    @ApiModelProperty(value = "申请人民族",name = "applyNation",required = true,example = "汉")
    private String applyNation;
    @ApiModelProperty(value = "授权书",name = "empowerAttach",required = true)
    private String empowerAttach;
    @ApiModelProperty(value = "结算账户类型",name = "settlementAccountType",required = true,example = "")
    private String settlementAccountType;
    @ApiModelProperty(value = "开户人姓名",name = "accountOpenerName",required = true,example = "campchen")
    private String accountOpenerName;
}
